package cn.smile.business.basic;

import cn.smile.bean.entity.basic.UserShop;
import cn.smile.bean.form.basic.shop.SavePositionForm;
import cn.smile.commons.domain.IBaseService;

import java.util.Map;

public interface IUserShopService extends IBaseService<UserShop> {

    /**
     * 用户绑定店铺
     *
     * @param userId   用户ID
     * @param shopCode 店铺邀请码
     * @param dicValue 职位字典编码 (系统预置: 1001-店长, 1007-其他)
     * @return 绑定结果
     */
    Boolean bindShop(String userId, String shopCode, Integer dicValue);

    /**
     * 查询指定用户的店铺Code
     *
     * @param userId 用户ID
     * @return 查询结果
     */
    String getMyShopCode(String userId);

    /**
     * 根据店铺编码查询用户ID集合(附带对应职位)
     *
     * @param shopCode 店铺Code
     * @return Map<用户ID, 店员职位>
     */
    Map<String, Integer> getUserIdsByCode(String shopCode);

    /**
     * 保存新职位信息
     *
     * @param form 保存参数
     * @return 保存结果
     */
    Boolean savePosition(SavePositionForm form);

    /**
     * 解除用户店铺绑定
     *
     * @param userId 用户ID
     * @return 解除结果
     */
    Boolean relieveBind(String userId);
}
